Solutions for alleviating problems with application sociability and compatibility include those that isolate the execution of applications such that the applications have access to a unique set of native resources specific to both the user executing the application and to the application. In some solutions, applications that require the presence of additional applications during isolation are isolated within isolation environments that include both an application executed by the user and additional supporting applications that execute when the user-executed application runs. Each time a main application requires the assistance of a supporting application, a new isolation environment is created that includes both the main application and the supporting application. Resources used by supporting applications are re-generated each time an isolation environment that includes an instance of the supporting application executes. Changes made to the resources by the supporting applications are confined to the isolation environment within which the change is made, and when a supporting application executes in a different isolation environment, the changes made are not preserved. Changes made to user-specified and application-specific resources by the supporting applications are retained within the isolation environment where the change is made, and when a supporting application executes in a different isolation environment, the changes made are not preserved. Rather changes are specific to the isolation environment within which the change is made, and application settings are not shared amongst multiple instances of an application executing within the same user session.